This specification relates to mobile devices and the associated applications (“apps”) on those devices and, in particular, to dynamic rendering for hybrid apps.
In a world that is increasingly social and open, mobile apps play a vital role, and have changed the focus from what's on the Web, to the apps on the mobile device. Increased availability and falling prices have helped in the fast adoption rate of mobile devices, which in turn has made apps an increasingly popular phenomenon. Whether these apps are for productivity or entertainment, there are huge amounts of profits associated with them. Thus companies are vying to get into this space fast to claim their share of the market. There are a few different types of apps: for example native apps, web apps and hybrid apps.
Native apps are specific to a given mobile platform (iOS or Android) using the development tools and language that the respective platform supports (e.g., Xcode and Objective-C with iOS, Eclipse and Java with Android). Native apps are usually developed using an integrated development environment (IDE). IDEs provide tools for building debugging, project management, version control, and other tools. Native apps can take advantage of the built-in hardware (camera, calendar, geolocation, etc.) of the mobile devices and also look and perform the best.
Web (HTML5) apps use standard web technologies—typically HTML5, JavaScript and CSS. This write-once-run-anywhere approach to mobile development creates cross-platform mobile applications that work on multiple devices. An HTML5 mobile app is basically a web page, or series of web pages, that are designed to work on a limited screen size of a mobile device. HTML5 apps are device agnostic and can be opened with a browser available on a mobile device. Such apps have limitations for example session management, secure offline storage, and access to native device functionality (camera, calendar, geolocation, etc.) Web apps are generalized for multiple platforms and not installed locally but made available over the Internet through a browser.
Hybrid apps make it possible to embed HTML5 apps inside a thin native container, combining elements of native and HTML5 apps. Hybrid apps can be built using a mix of native and web technologies and is becoming an increasingly viable option. Usually split on a feature basis, these app can benefit from faster-to-build HTML components, reuse between platforms, or even seamless updates bypassing the approval processes while still maintaining a high-end user experience. Hybrid application can: function even when the device is not connected; be integrated with a device's file system; be integrated with Web-based services; have improved access to dynamic online content via the embedded browser. Nonetheless, when compared with native apps, hybrid apps typically sacrifice some level user-experience or functionality for the advantage of being cross-platform.